昨天的文章中有稍微提到激勵函數相關的介紹,但都沒有實際利用PyTorch函式庫中預先定義的激勵函數進行相關的操作,我這次主要就四個比較常利用的激勵函數 : sigmoid
, tanh
, ReLU
及softmax
來做相關的實作.
sigmoid是神經網路歷史中最早使用激勵函數之一.它的功能是將實值(y)壓在0至1之間.
tanh是sigmoid函式去進行線性轉換後的結果,tanh和sigmoid都是屬於壓縮函式,但不同於sigmoid將實值壓縮在0至1之間,tanh則是將實值壓縮在-1至1之間.
所有的ReLU單元只是將負值截為0,它可以說是激勵函數中最重要的一個,但它形式卻也意外的簡單.
ReLU當中處理梯度消失的截零,會使神經網路中的輸出在經過一段時間後變成零且不會還原,這個現象被稱dying ReLU.為了緩和上述的現象可以利用PReLU這個激勵函數.
softmax如同sigmoid函式將每個輸出壓縮成0至1之間,並將每個輸出除以所有輸出的總和,使其結果分布中的機率總和為1,因此這種轉換常見於機率性訓練目標.